#include "../include/interrupciones.h"
#include "../include/stdio.h"
#include "../include/teclado.h"
#include "../include/pantalla.h"
#include "../include/kernel.h"
#include "../include/mouse.h"

/*
 * Procesa interrupcion del timertick que se ejecuta cada 0,055 segundos y envia el EOI al pic
 */
void int_08()
{
	procTimerTick();
	outportb(0x20,0x20);
}

/*
 * Procesa interrupcion del teclado leyendo el codigo del puerto 60h y envia el EOI al pic
 */
void int_09() // teclado
{
	procTeclado(inportb(0x60));
	outportb(0x20,0x20);
}

/*
 * Procesa interrupcion del mouse leyendo el codigo del puerto 60h y envia el EOI al pic primario y secundario
 */
void int_74()
{
	procMouse(inportb(0x60));
	outportb(0x20,0x20);
	outportb(0xA0,0x20);
}

/* procesa las excepciones */ //NO ESTOY SEGURO SI HAY QUE MANDARLE UN EOI O ALGO DPS DE HACER EL PRINTF
void exp0(){printf("Divide Error");}
void exp1(){printf("Debug Exception");}
void exp2(){printf("Nonmaskable interrupt");}
void exp3(){printf("Breakpoint");}
void exp4(){printf("Overflow");}
void exp5(){printf("Bounds Check");}
void exp6(){printf("Invalid Opcode");}
void exp7(){printf("Coprocessor not available");}
void exp8(){printf("Double fault");}
void exp9(){printf("Reserved");}
void exp10(){printf("Invalid TSS");}
void exp11(){printf("Segment not present");}
void exp12(){printf("Stack Exception");}
void exp13(){printf("General Protection");}
void exp14(){printf("Page fault");}
void exp15(){printf("Reserved");}
void exp16(){printf("Coprocessor Error");}
void exp17(){printf("Reserved");}
